﻿/*********************************************************************
 *
 *                             NOTICE
 *               COPYRIGHT (c) 2012 Panoscopix Software, Inc.
 *                UNPUBLISHED - ALL RIGHTS RESERVED
 * 
 *      This program is confidential, proprietary, and a trade
 *   secret of Panoscopix Software, Inc. The receipt or possession of
 *     this program does not convey any rights to reproduce or
 *      disclose its contents, or to manufacture, use, or sell
 *       anything that it may describe, in whole or in part, 
 *   without the specific written consent of Panoscopix Software, Inc.
 *
 * Emulates a context for printing to the console.  Has indent level.
 * 
 *******************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FileSystem
{
    public interface IPrintContext
    {
        /// <summary>
        /// Increase the current indent by one level.
        /// </summary>
	    void increaseIndent();
	
        /// <summary>
        /// Decrease the current indent by one level.
        /// </summary>
	    void decreaseIndent();
	
        /// <summary>
        /// Returns the current indent level.
        /// </summary>
        /// <returns>The current indent level.</returns>
	    int getIndentLevel();
	
        /// <summary>
        /// Returns the prefix string for the current indent level.
        /// </summary>
        /// <returns>The prefix string.</returns>
	    String getIndentString();
	
        /// <summary>
        /// The formatted string (prefix + supplied string + NL).
        /// </summary>
        /// <param name="core">The core string to format with this context.</param>
        /// <returns>The formatted string</returns>
	    String getFormattedString(String core);
    }
}
